import {defineStore} from 'pinia';
import {MessageError} from "@/utils";

interface ProjectType {
    Id: Number
}
// 使用defineStore定义store，第一个参数是store的唯一标识，第二个参数是一个配置函数
export const userPageProject = defineStore({
    id: 'userPageProject',
    // 相当于Vuex中的state，定义响应式数据
    state: () => ({
        darkTheme: false,
        CurrentEditProject: {} as ProjectType, // 项目的基本信息
    }),
    // 相当于Vuex中的actions，用于定义异步操作或包含业务逻辑的函数，可以直接修改state
    actions: {
        // 设置当前编辑的项目
        SetCurrentEditProject(Project: ProjectType) {
            if (Project == null){
                return MessageError("设置当前编辑的项目异常，刷新重试");
            }
            this.CurrentEditProject = Project
        },
    },
    // 相当于Vuex中的getters，用于派生和返回计算后的状态
    getters: {
        GetCurrentEditProject(): ProjectType {
            return this.CurrentEditProject
        }
    }
});
